package design.wlb.java_reading.service.impl;

import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import design.wlb.java_reading.entity.GuaSixtyFour;
import design.wlb.java_reading.mapper.GuaSixtyFourMapper;
import design.wlb.java_reading.service.GuaSixtyFourService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;

import java.util.Map;

/**
 * <p>
 *  服务实现类
 * </p>
 *
 * @author wlb
 * @since 2025-09-10
 */
@Service
public class GuaSixtyFourServiceImpl extends ServiceImpl<GuaSixtyFourMapper, GuaSixtyFour> implements GuaSixtyFourService {
    /**
     * 根据条件分页查询
     * @param pageNum 当前页码
     * @param pageSize 每页数量
     * @param condition 查询条件（例如：{"name": "某卦名"}）
     * @return 分页结果
     */
    @Override
    public IPage<GuaSixtyFour> queryByPage(Integer pageNum, Integer pageSize, Map<String, Object> condition) {
        // 1. 创建分页对象，参数一是当前页，参数二是每页条数
        Page<GuaSixtyFour> page = new Page<>(pageNum, pageSize);

        // 2. 构建查询条件（根据实际需求构造）
        LambdaQueryWrapper<GuaSixtyFour> queryWrapper = new LambdaQueryWrapper<>();
        // 示例：如果 condition 中有 name 条件，则模糊查询卦名
        if (condition != null && condition.containsKey("name")) {
            queryWrapper.like(GuaSixtyFour::getName, condition.get("name"));
        }
        // 可以继续添加其他条件，例如 eq(等于), gt(大于), between(介于) 等

        // 3. 执行分页查询。page 对象会在查询后自动填充总记录数、分页数据等
        return baseMapper.selectPage(page, queryWrapper);
    }
}
